using System.Collections.Generic;
using System.Runtime.Serialization;
using JPR.Common.Interfaces;

namespace JPR.TunelProxy.Interfaces
{
	public interface IProxyWorker
	{
        IClientDatagramProvider ClientDatagramProvider { get; set; }
        IServerDatagramProvider ServerDatagramProvider { get; set; }
        IFormatter Formatter { get; set; }
        IHttpHeadersFormatter HeadersFormatter { get; set; }
        IConfigProvider ConfigProvider { get; set; }
        List<IDataProcessor> DataProcessors { get; set; }
        IHttpParser HttpParser { get; set; }
        
        void ProcessCommunication();
	}
}